package cn.edu.gdpt.mobile0123456789hwh0409;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
//2、适配器Adapter类继承RecyclerView.Adapter，并设置泛型为刚定义的ViewHolder
public class PartRVAdapter extends RecyclerView.Adapter<PartRVAdapter.ViewHolder> {
//    4、在PartRVAdapter类中添加全局变量int[] partId和String[] partName，并在构造方法中赋值。
    int[] partIDs;
    String[] partNames;
    public PartRVAdapter(int[] partIDs, String[] partNames) {
        this.partIDs = partIDs;
        this.partNames = partNames;
    }

    //    1、定义内部静态类ViewHolder用于描述列表项目布局文件中的控件，继承
//    RecyclerView.ViewHolder，定义列表项布局文件中的控件变量，并添加构造方法。
    static  class ViewHolder extends RecyclerView.ViewHolder{
        ImageView ivPart;
        TextView tvPart;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            ivPart=itemView.findViewById(R.id.ivItemPart);
            tvPart=itemView.findViewById(R.id.tvItemPart);
        }
    }
//3、添加3个需要实现的接口
//6、在onCreateViewHolder()方法中，首先通过LayoutInflater获取列表项布局文件对象，
// 然后创建ViewHolder对象，最后返回该对象。
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(
                R.layout.item_rv_main_part,parent,false);
        return new ViewHolder(view);
    }
//    7、在onBindViewHolder()方法中，通过position获取数组元素，然后赋值给控件。
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.ivPart.setImageResource(partIDs[position]);
        holder.tvPart.setText(partNames[position]);
    }
//    5、在getItemCount()方法中，返回列表项数据长度。
    @Override
    public int getItemCount() {
        return partIDs.length;
    }
}
